package com.cskaoyan.singleton;

/**
 * 第一个单例
 * @author stone
 * @date 2021/11/16 11:22
 */
public class MySingleton {

    //3、维护成员变量实例
    //私有保证只能通过方法来获得
    //静态保证唯一性和能够通过静态方法返回去
    private static MySingleton mySingleton;

    //2、类里提供方法让外部能够获得实例
    //如果不是静态方法，就陷入了鸡生蛋←→蛋生鸡的问题
    public static MySingleton getInstance() {
        //如果我想要在getInstance方法里完成实例化 能不能做
        //可以做
        //如果没有实例化(mySingleton还是null)，则完成实例化
        //如果已经实例化了，则直接返回
        if (mySingleton == null) {//第一次使用的时候是没有实例化
            mySingleton = new MySingleton();
        }
        return mySingleton;
    }

    //1、构造方法私有 → 当前只有类内部可以调用这个私有方法构造
    private MySingleton() {
    }
}
